package cn.kgc.util.resultutil;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @author YC
 * 结果编码和结果信息
 * 提供给Resut类使用
 */
@Getter
@AllArgsConstructor
public enum ResultConstant {

    /**
     * 成功
     */
    SUCCESS(200, "成功"),
    /**
     * 失败
     */
    ERROR(500, "服务器内部异常"),
    /**
     * 登录失败
     */
    LOGIN_ERROR(501, "登录状态异常"),
    /**
     * 权限认证异常
     */
    ACCESS_DENIED(502, "没有权限操作"),
    /**
     * 验证错误
     */
    VERIFY_ERROR(503, "验证错误"),

    //==================== 用户模块错误 =====================

    /**
     * 自删错误
     */
    USER_DELETE_ERROR_SELF(601, "不允许删除当前登录账户"),
    /**
     * 删除负责人错误
     */
    USER_DELETE_ERROR_LEADER(602, "不允许删除部门主管"),
    /**
     * 删除管理员错误
     */
    USER_DELETE_ERROR_ADMIN(603, "不允许删除管理员"),
    /**
     * 用户名重复错误
     */
    USER_UPDATE_ERROR_REPEAT(604, "用户名不能重复"),

    //==================== 角色模块错误 =====================

    /**
     * 角色被引用错误
     */
    ROLE_DELETE_ERROR_USED(701, "角色被引用不允许删除"),
    /**
     * 角色名称重复错误
     */
    ROLE_UPDATE_ERROR_REPEAT(702, "角色名称不能重复"),

    //==================== 菜单模块错误 =====================

    /**
     * 菜单被使用错误
     */
    MENU_DELETE_ERROR_USED(801, "菜单被使用不允许删除"),
    /**
     * 菜单下有子菜单错误
     */
    MENU_DELETE_ERROR_CHILD(802, "菜单下有子菜单不允许删除"),
    /**
     * 菜单名称重复错误
     */
    MENU_INSERT_UPDATE_ERROR_REPEAT(802, "菜单名称不能重复"),

    //==================== 部门模块错误 =====================

    /**
     * 部门名称重复错误
     */
    DEPT_UPDATE_ERROR_REPEAT(901, "部门名称不能重复"),
    /**
     * 部门负责人不存在错误
     */
    DEPT_UPDATE_ERROR_NOT_EXISTS(902, "部门负责人不存在");


    /**
     * 编码
     */
    private final Integer code;
    /**
     * 消息
     */
    private final String message;

}
